
using System;
using System.Runtime.Serialization;

namespace ICIA.ARojas.Silverlight.Entities
{
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]    
    [System.Runtime.Serialization.DataContractAttribute(Name = "Destino", Namespace = "http://schemas.datacontract.org/2004/07/ICIA.ARojas.AccesoDatos.Entidades")]
	[System.Runtime.Serialization.KnownTypeAttribute(typeof(ICIA.ARojas.Silverlight.Entities.Destino))]
	public partial class Destino : object, System.ComponentModel.INotifyPropertyChanged
	{
        #region Private Members
		
       private DestinoFisico DestinoFisicoField;
       private Persona PersonaField;
       private TipoDestino TipoDestinoField;
       private int IdField;
       private DateTime? FechaRegistroField;
       private string RegistradoPorField;


       private Cargo CargoField;

       private bool TieneObservacionesField;

       private int GestionField;
	
		#endregion
		
		#region constructor		
		public Destino()
		{
		}
		#endregion
		
		#region Public Properties
		

        [System.Runtime.Serialization.DataMemberAttribute()]
        public DestinoFisico DestinoFisico 
        {
            get 
            {
                return this.DestinoFisicoField;
            }
            set 
            {
                    this.DestinoFisicoField = value;
                    this.RaisePropertyChanged("DestinoFisico");
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public Persona Persona 
        {
            get 
            {
                return this.PersonaField;
            }
            set 
            {
                    this.PersonaField = value;
                    this.RaisePropertyChanged("Persona");
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public TipoDestino TipoDestino 
        {
            get 
            {
                return this.TipoDestinoField;
            }
            set 
            {
                    this.TipoDestinoField = value;
                    this.RaisePropertyChanged("TipoDestino");
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Id 
        {
            get 
            {
                return this.IdField;
            }
            set 
            {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public DateTime? FechaRegistro 
        {
            get 
            {
                return this.FechaRegistroField;
            }
            set 
            {
                    this.FechaRegistroField = value;
                    this.RaisePropertyChanged("FechaRegistro");
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string RegistradoPor 
        {
            get 
            {
                return this.RegistradoPorField;
            }
            set 
            {
                    this.RegistradoPorField = value;
                    this.RaisePropertyChanged("RegistradoPor");
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool TieneObservaciones
        {
            get
            {
                return this.TieneObservacionesField;
            }
            set
            {
                this.TieneObservacionesField = value;
                this.RaisePropertyChanged("TieneObservaciones");
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Gestion
        {
            get
            {
                return this.GestionField;
            }
            set
            {
                this.GestionField = value;
                this.RaisePropertyChanged("Gestion");
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public Cargo Cargo
        {
            get
            {
                return this.CargoField;
            }
            set
            {
                this.CargoField = value;
                this.RaisePropertyChanged("Cargo");
            }
        }

		
		#endregion 	
		
		public override string ToString()
        {
		    //Aqui pueden cambiar el return a por ejemplo la concatenacion de propiedades			
            return DestinoFisico.Codigo + " " + DestinoFisico.Nombre;
        }
		
		#region INotifyPropertyChanged
		public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        protected void RaisePropertyChanged(string propertyName)
        {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null))
            {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
		#endregion

	}
}

